
# views/home_views.py
from PySide6.QtWidgets import QLabel, QLineEdit, QHBoxLayout, QWidget
from .base_views import SubPage

class HomeMain(SubPage):
    def __init__(self, event_bus):
        super().__init__("首页", event_bus)
        self.event_bus = event_bus  # 保存事件总线引用
        
        # 添加数据输入区域
        self.add_data_input_area()
        
        # 原有导航按钮
        self.add_nav_button("查看个人信息", 
                          lambda: self.event_bus.switch_sub_page.emit("/home/profile"))
        self.add_nav_button("浏览动态", 
                          lambda: self.event_bus.switch_sub_page.emit("/home/feed"))
        
        # 监听提交结果事件，更新UI
        self.event_bus.data_submit_result.connect(self.on_submit_result)
    
    def add_data_input_area(self):
        """添加数据输入框和提交按钮"""
        input_widget = QWidget()
        input_layout = QHBoxLayout(input_widget)
        
        self.data_input = QLineEdit()
        self.data_input.setPlaceholderText("请输入要提交的数据...")
        input_layout.addWidget(self.data_input)
        
        submit_btn = self.add_nav_button("提交数据", self.submit_data)  # 绑定提交方法
        input_layout.addWidget(submit_btn)
        
        self.layout.addWidget(input_widget)
        
        # 用于显示提交结果的标签
        self.result_label = QLabel("")
        self.layout.addWidget(self.result_label)
    
    def submit_data(self):
        """获取输入数据，通过事件总线发送提交请求"""
        data = self.data_input.text().strip()
        print(f"提交的数据：{data}")
        if not data:
            self.result_label.setText("⚠️ 请输入数据")
            return
        # 发送数据提交请求（包装成字典，方便扩展更多字段）
        self.event_bus.data_submit_request.emit({"content": data})
    
    def on_submit_result(self, success, message):
        """接收提交结果，更新UI显示"""
        if success:
            self.result_label.setStyleSheet("color: green;")
            self.data_input.clear()  # 提交成功后清空输入框
        else:
            self.result_label.setStyleSheet("color: red;")
        self.result_label.setText(message)

class HomeProfile(SubPage):
    def __init__(self, event_bus):
        super().__init__("个人信息", event_bus)
        self.layout.addWidget(QLabel("这是您的个人信息页面。"))
        self.add_nav_button("返回首页", 
                          lambda: self.event_bus.switch_sub_page.emit("/home/main"))

class HomeFeed(SubPage):
    def __init__(self, event_bus):
        super().__init__("动态浏览", event_bus)
        self.layout.addWidget(QLabel("这里可以查看最新动态。"))
        self.add_nav_button("返回首页", 
                          lambda: self.event_bus.switch_sub_page.emit("/home/main"))